// 观察目标
class Subject {
  constructor() {
    this.observers = [];
  }
  // 添加一个观察者
  add(observer) {
    this.observers.push(observer);
  }
  // 通知观察者
  notify() {
    console.log("subject : 我先做我自己的事情！");
    this.observers.forEach((item) => item.update());
  }
}

// 观察者
class Observer {
  constructor(name) {
    this.name = name;
  }

  // 默认被触发事件
  update() {
    console.log(this.name, ": 我被触发了");
  }
}

const observer1 = new Observer("张三丰");
const observer2 = new Observer("张无忌");
const subject = new Subject();

subject.add(observer1);
subject.add(observer2);

subject.notify();
